package org.edu.modules.kwgl.mapper;

import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.edu.modules.kwgl.entity.VeJwChengji;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.edu.modules.kwgl.entity.VeJwKaoshi;
import org.edu.modules.scheduleCommon.dto.BasePageDto;
import org.edu.modules.scheduleCommon.dto.PassRateStatistics;
import org.edu.modules.scheduleCommon.dto.ScoreAnalysis;

/**
 * @Description: 成绩
 * @Author: jeecg-boot
 * @Date: 2021-05-12
 * @Version: V1.0
 */
@Mapper
public interface VeJwChengjiMapper extends BaseMapper<VeJwChengji> {


    IPage<VeJwChengji> pageDto(BasePageDto page, @Param(Constants.WRAPPER) Wrapper queryWrapper);

    /**
     * 查询所有专业组的所有学期的考试成绩数据
     *
     * @return 考试成绩数据
     */
    List<JSONObject> selectAllCjData();

    /**
     * 成绩分析
     *
     * @param falId   专业组ID
     * @param specId  专业ID
     * @param gradeId 年级ID
     * @param semId   学期ID
     * @param kcId    课程ID
     */
    List<ScoreAnalysis> scoreAnalysis(
            @Param("falId") Integer falId,
            @Param("specId") Integer specId,
            @Param("gradeId") Integer gradeId,
            @Param("semId") Integer semId,
            @Param("kcId") Integer kcId);

    /**
     * 成绩分析
     *
     * @param falId   专业组ID
     * @param specId  专业ID
     * @param gradeId 年级ID
     * @param semId   学期ID
     * @param xzbId    课程ID
     */
    List<PassRateStatistics> passRateStatistics(
            @Param("falId") Integer falId,
            @Param("specId") Integer specId,
            @Param("gradeId") Integer gradeId,
            @Param("semId") Integer semId,
            @Param("xzbId") Integer xzbId);
}
